<?php
require_once 'bootstrap.php';

class ServicioEncriptacion {

	/**
	 * Encripta una parabra utilizando el parametro recibido
	 * @param String texto_entrada
	 * @return String
	 */
	function encriptar($texto_entrada) {
   		$texto_salida = '';
   		$clave = 'murcielago';
   		if(empty($texto_entrada)){
   			return "Ingrese un texto para encriptar";
   		}else if(strlen($texto_entrada) > 29){
   			return "El largo de su texto ingresado no puede exeder los 30 caracteres";
   		}for($i=0; $i<strlen($texto_entrada); $i++) {
   			$conn = Doctrine_Manager::connection(DSN);	
   			
   			$p = Doctrine_Query::create()
            ->select('Administradorid_admin')
            ->from('Login')
            ->where('token = ?', $token);
            $users = $p->execute();
            $f = new encriptador();

      		$char = substr($texto_entrada, $i, 1);
      			
      		$f->clave_encrip = $clave_encrip;
      		$f->texto_entrada = $texto_entrada;
      			
      		$keychar = substr($clave, ($i % strlen($clave))-1, 1);
      		$char = chr(ord($char)+ord($keychar));
     		$texto_salida.=$char;	
     		
     		$f->fecha_consulta = $date;
            $f->id = $users[0]['Administradorid_admin'];	
   		}
   		$f->texto_salida = $texto_salida;
   		$f->save();
   			
   		return base64_encode($texto_salida);
   	}

	/**
	 * Encripta una parabra utilizando el parametro recibido
	 * @param String texto_entrada
	 * @return String
	 */
	function decencriptar($texto_entrada) {
   		$texto_salida = '';
   		$clave_encrip = 'murcielago';
   		if(empty($texto_entrada)){
   			return "Ingrese un texto para desencriptar";
   		}else if(strlen($texto_entrada) > 29){
   			return "El largo de su texto ingresado no puede exeder los 30 caracteres";
   		}
   		$texto_entrada = base64_decode($texto_entrada);
   		for($i=0; $i<strlen($texto_entrada); $i++) {
   			$conn = Doctrine_Manager::connection(DSN);	
   			
   			$p = Doctrine_Query::create()
            ->select('Administradorid_admin')
            ->from('Login')
            ->where('token = ?', $token);
            $users = $p->execute();
            $f = new encriptador();
   				
      		$char = substr($texto_entrada, $i, 1);
      		
      		$f->clave_encrip = $clave_encrip;
      		$f->texto_entrada = $texto_entrada;
      			
      		$keychar = substr($clave, ($i % strlen($clave))-1, 1);
      		$char = chr(ord($char)-ord($keychar));
      		$texto_salida.=$char;
      		
      		$f->fecha_consulta = $date;
            $f->id = $users[0]['Administradorid_admin'];
   		}
   		$f->texto_salida = $texto_salida;
   		$f->save();
   			
   		return $texto_salida;
	}

}
?>
